<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.parent {
  --number: 30;
}
.target {
  --number: 10;
}
</style>
<body>
<script src="../interpolation/resources/interpolation-test.js"></script>
<script>
CSS.registerProperty({
  name: '--number',
  syntax: '<number>',
  initialValue: '40',
  inherits: false,
});

assertInterpolation({
  property: '--number',
  from: neutralKeyframe,
  to: '20',
}, [
  {at: -0.3, is: '7'},
  {at: 0, is: '10'},
  {at: 0.5, is: '15'},
  {at: 1, is: '20'},
  {at: 1.5, is: '25'},
]);

assertInterpolation({
  property: '--number',
  from: 'initial',
  to: '20',
}, [
  {at: -0.3, is: '46'},
  {at: 0, is: '40'},
  {at: 0.5, is: '30'},
  {at: 1, is: '20'},
  {at: 1.5, is: '10'},
]);

assertInterpolation({
  property: '--number',
  from: 'inherit',
  to: '20',
}, [
  {at: -0.3, is: '33'},
  {at: 0, is: '30'},
  {at: 0.5, is: '25'},
  {at: 1, is: '20'},
  {at: 1.5, is: '15'},
]);

assertInterpolation({
  property: '--number',
  from: 'unset',
  to: '20',
}, [
  {at: -0.3, is: '46'},
  {at: 0, is: '40'},
  {at: 0.5, is: '30'},
  {at: 1, is: '20'},
  {at: 1.5, is: '10'},
]);

assertInterpolation({
  property: '--number',
  from: '-10',
  to: '10',
}, [
  {at: -0.3, is: '-16'},
  {at: 0, is: '-10'},
  {at: 0.5, is: '0'},
  {at: 1, is: '10'},
  {at: 1.5, is: '20'}
]);

assertInterpolation({
  property: '--number',
  from: '10',
  to: '15',
}, [
  {at: -0.3, is: '8.5'},
  {at: 0, is: '10'},
  {at: 0.25, is: '11.25'},
  {at: 0.5, is: '12.5'},
  {at: 0.75, is: '13.75'},
  {at: 1, is: '15'},
  {at: 1.5, is: '17.5'}
]);
</script>
</body>
